ThinkPHP5之获取请求的信息

获取请求信息
1.可以通过系统方法来获取

        $request=\request();
        dump($request);

2.可以通过系统类来实现

            //Request属于单例模式,不能直接new
            $request=Request::instance();
            dump($request);

3.也是通过Request类实现

use think\Request;
 public function demo(Request $request){
        dump($request);
 }

下面是获取一些用户请求的方法,不止这些,还有很多,详细可以查看官方文档

$request = Request::instance();
// 获取当前域名
echo 'domain: ' . $request->domain() . '<br/>';
// 获取当前入口文件
echo 'file: ' . $request->baseFile() . '<br/>';
// 获取当前URL地址 不含域名
echo 'url: ' . $request->url() . '<br/>';
// 获取包含域名的完整URL地址
echo 'url with domain: ' . $request->url(true) . '<br/>';
// 获取当前URL地址 不含QUERY_STRING
echo 'url without query: ' . $request->baseUrl() . '<br/>';
// 获取URL访问的ROOT地址
echo 'root:' . $request->root() . '<br/>';
// 获取URL访问的ROOT地址
echo 'root with domain: ' . $request->root(true) . '<br/>';
// 获取URL地址中的PATH_INFO信息
echo 'pathinfo: ' . $request->pathinfo() . '<br/>';
// 获取URL地址中的PATH_INFO信息 不含后缀
echo 'pathinfo: ' . $request->path() . '<br/>';
// 获取URL地址中的后缀信息
echo 'ext: ' . $request->ext() . '<br/>';
$request = Request::instance();
echo '请求方法:' . $request->method() . '<br/>';
echo '资源类型:' . $request->type() . '<br/>';
echo '访问ip地址:' . $request->ip() . '<br/>';
echo '是否AJax请求:' . var_export($request->isAjax(), true) . '<br/>';
echo '请求参数:';
dump($request->param());
echo '请求参数:仅包含name';
dump($request->only(['name']));
echo '请求参数:排除name';
dump($request->except(['name']));

伪静态:是将路径伪装成静态界面,一方面是为了搜索引擎更好收录网站,另一方面防止别人知道网站真实的开发语言

//获取get请求是否包含id这个参数的两种方式
$request->has('id','get')
input('?get.id')

读取get请求的参数的两种方式

        //获取get请求的id的参数
        dump($request->get('id'));
        dump(input('get.id'));
        //将获取的id强制转换成int类型
        dump(input('get.id/d'));
        //获取get请求的所有参数
        dump($request->get());
        dump(input('get.'));

可以获取的请求的参数有下面的一些
这里写图片描述

对请求的数据进行过滤,可以去掉特殊符号,将请求的数据转成大小写,加密等等

Request::instance()->filter()

这里写图片描述

修改请求的参数,比如我们通过URLhttp://www.yd.com/index/getData?id=5请求的参数id为5,我们想改成请求的参数为10,可以这样修改

 dump($request->get(['id'=>20]));

伪装请求,我们将请求的类型,比如POST,更改为PUT请求

//表单的请求必须是POST请求
<form method="post" action="">
    <input type="text" name="name" value="Hello">
//需要设置隐藏域,隐藏域的name为_method,如果模拟请求put,则value="PUT",如果模拟请求DELETE,则value="DELETE"
    <input type="hidden" name="_method" value="PUT" >
    <input type="submit" value="提交">
</form>

伪静态
作用:
1)URL伪静态是为了SEO优化效果
2)为了网站的安全
修改伪静态:
1)修改配置文件

//修改html为你想生成的后缀
// URL伪静态后缀
    'url_html_suffix'        => 'html',

绑定参数
我们URL访问携带参数,http://www.yd.com/index/myFilder/id/3/name/qiaoming/sex/nv
我们要或许参数可以通过

//注意 1. 方法内绑定的参数不能多于地址栏的参数
//    2.  方法内绑定的参数可以设置默认值
 public function getCanSu($id,$name,$sex,$age=19){
        dump($id);
        dump($name);
        dump($sex);
        dump($age);
    }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值